//package cn.wlinker.video.monitor.utils;
//
//import lombok.extern.slf4j.Slf4j;
//import org.bytedeco.javacv.FFmpegFrameGrabber;
//import org.bytedeco.javacv.Frame;
//import org.bytedeco.javacv.Java2DFrameConverter;
//import org.springframework.util.Assert;
//
//import javax.imageio.ImageIO;
//import java.awt.image.BufferedImage;
//import java.io.File;
//
///**
// * ffmpeg工具类
// *
// * @author gxsjx
// * @version 1.0
// * @date 2022/11/23
// */
//@Slf4j
//public class FFmpegUtils {
//
//    /**
//     * 随机获取视频截图
//     *
//     * @param videoPath 视频文件
//     * @param imgPath   输出截图数量
//     * @return 截图列表
//     */
//    public static void randomGrabberFFmpegImage(String videoPath, String imgPath) {
//        FFmpegFrameGrabber grabber = null;
//        File videFile = new File(videoPath);
//        Assert.isTrue(videFile.exists() && videFile.length() > 0, "视频不存在");
//        try {
//            grabber = new FFmpegFrameGrabber(videFile);
//            grabber.start();
//            // 获取视频总帧数
//            int lengthInVideoFrames = grabber.getLengthInFrames();
//            Frame f = new Frame();
//            // 默认取最后一帧数
//            int i = lengthInVideoFrames;
//            while (i > 0) {
//                i--;
//                // 跳转到相应帧数
//                grabber.setFrameNumber(i);
//                f = grabber.grabFrame();
//                if (f != null && f.image != null) {
//                    break;
//                }
//            }
//            Java2DFrameConverter converter = new Java2DFrameConverter();
//            BufferedImage bi = converter.getBufferedImage(f);
//            File out = new File(imgPath);
//            ImageIO.write(bi, "jpg", out);
//        } catch (Exception e) {
//            e.printStackTrace();
//        } finally {
//            try {
//                if (grabber != null) {
//                    grabber.stop();
//                    grabber.release();
//                }
//            } catch (FFmpegFrameGrabber.Exception e) {
//                log.error("getVideoInfo grabber.release failed 获取文件信息失败：{}", e.getMessage());
//            }
//        }
//    }
//}
